package cn.tedu.basic;

import jdk.nashorn.internal.ir.WhileNode;

import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;

//测试泛型
public class Test2_Genericity {
    public static void main(String[] args) {

        Method();
        Method1();
    }
    public static void Method(){
        //集合里可以添加任意类型的元素
        List list =new ArrayList();
        list.add(18);
        list.add(2.8);
        list.add(true);
        list.add("hvfv");
        //使用泛型，约束集合
        List<String> list1 =new ArrayList<>();
//        list1.add(188);
//        list1.add(true);
//        list1.add(2.8);//必须为String类型，没有通过泛型的类型调查
        list1.add("ihfhnv");
        list1.add("iunhn");
        //泛型中不可以为基本类型，应为引用类型
        List<Integer> list2 =new ArrayList();
        list2.add(514641);
        list2.add(44454);
        //自动装箱。基本类型变为包装类型，Integer I =new Integer();

    }
    public static void Method1(){
        Integer[] a ={1,2,3,4,5,6};
        print(a);
        Double[] b ={1.1,2.2,3.3,4.4,5.5,6.6};
        print(b);
        String[] c={"杨幂","Angerlababy","古力娜扎","章子怡"};
        print(c);

        List<Integer> aa =new ArrayList();
        Iterator ab =aa.iterator();
        while(ab.hasNext()){
        Object st = ab.next();
            System.out.println(st.toString());
        }
    }

    private static <E> void print(E[] a) {
        for (int i = 0; i <a.length ; i++) {
            System.out.println(a[i]);
        }
    }
    private static void print(Double[] b){
        for (int i = 0; i <b.length ; i++) {
            System.out.println(b[i]);
        }
    }
    private static void print(String[] c){
        for (int i = 0; i <c.length ; i++) {
            System.out.println(c[i]);
        }
    }



}



